/**
 * 路由解释插件
 * form表单提交Router拟静态
 * autor : huanran.zhao
 * QQ: 523994553
 * date: 2014-08-17
 */
var $router = {
	//初始化
	init : function(){
		//(当form.router时不直接提交表单,从服务器获取静态url来提交表单)
		$('form.router').submit(function(){
			$router.form2url(this);
			return false;
		});
		//搜索表单的input框enter时,提交表单 (当form.router时不直接提交表单,转换为静态url来提交表单)
		$("form[name='search']").keydown(function(event){
			if(event.keyCode==13 && $(this).hasClass('router')){
				$router.form2url(this);//从服务器获取静态url来提交表单
			}
			else if(event.keyCode==13) document.search.submit();
		});
		//搜索项select选择时,自动促发提交表单 (当form.router时不直接提交表单,从服务器获取静态url来提交表单)
		$("form[name='search'] select").not('.nochange').change(function(){//select选择,促发条件搜索
			if($(this).parents('form').hasClass('router')) $router.form2url($("form[name='search']"));//从服务器获取静态url来提交表单
			else document.search.submit();
		});
	},
	//form.router的表单提交时,将源生Url转换为静态url
	form2url : function(obj){
		//没有开启拟静态时,直接返回
		if(!dreamVar.Rewrite)
			return true;
		//转换为拟静态URL
		var url = $(obj).serialize();
		url = decodeURI(url);//对url进行解码
		var url = $router.encodeUrl(url);
		url = encodeURI(url);//对url进行编码加密
		document.location.href = url;
	},
	//动态URL 2 静态URL
	encodeUrl : function(url){
		if(!$.cookie){
			alert('cookie插件不存在[dream.mask.js]');
			return false;
		}else if(!$.cookie('__ROOT__')){
			alert('cookie.__ROOT__不存在[dream.mask.js]');
		}
		var urlArr = Array(),app,act;
		//组合成数组(值为空的变量不要)
		var arr = $router.parseUrl(url);
		for(var item in arr){
			if(item=='app')//app
				app = arr[item];
			else if(item=='act')//act
				act = arr[item];
			else//其它参数
				urlArr.push(item+'-'+arr[item]);
		}
		if(act) urlArr.unshift(act);//将act添加到数组头部
		if(app) urlArr.unshift(app);//将app添加到数组头部
		url = urlArr.join('/');//组合成URL
		//添加URL后缀
		if(dreamVar.URL_MODEL=='html')
			var suffix = '.html'
		else//dreamVar.URL_MODEL=='dir'
			var suffix = '/';
		url = $.cookie('__ROOT__')+url+suffix;
		return url;
	},
	//解释一个URL网址 -> 数组变量
	parseUrl : function(url) {
		if(!url)
			url = location.search; //获取url中"?"符后的字串
		//url中有?号时,取?号后面的字符
		if(url.indexOf("?")!=-1)
			var url = url.substr((url.indexOf("?")+1));
		//开始解释URL->变量
		if(url!='')
			strs = url.split("&");
		var urlArr = [];
		for(var i=0; i<strs.length; i++) {
			var temp = strs[i].split("=");
			if(temp[1]!='')
				urlArr[temp[0]]=unescape(temp[1]);
		}
		return urlArr;
	}
};

//初始化执行
$(function(){
	$router.init();
});